/** 目录结构
 * pages 页面目录，小程序通过app.json中pages配置的页面都会生成在这个目录中
 * utils 公用逻辑库，比如时间处理等
 * app.js 小程序入口文件,初始化应用程序。可以定义全局变量和函数
 * app.json pages是页面配置，即配置小程序页面，pages[0]为首页(启动页)，window是窗口配置，可配置导航等
 * app.wxss 全局的css样式，应用于每个页面
 * project.config.json 工程配置文件
 * sitemap.json 配置小程序页面是否可以检索到，能够被检索的页面在搜索小程序时根据内容可以搜索到
 */

/** 开发者工具
 * 模拟器,模拟各种手机型号进行测试开发
 * 编辑器,进行代码编辑
 * 调试器,调试代码，类似于浏览器的调试器
 * 编译方式,可根据需要只编译单个页面或者编译整个项目
 * 预览,可通过扫描二维码的方式在微信中进行预览，也可以设置自动预览
 * 真机调试,可通过扫描二维码在手机上进行测试，在电脑上调试
 * 清缓存，清除相应缓存
 * 版本管理，git版本管理
 * 详情，可查看项目信息，项目配置，可进行本地开发配置
 */

/** 小程序配置文件,也可以称为IDE配置
 * 当小程序不是自己的时候，可以直接通过修改project.config.json中的appid打开,如果上述方法不可以，则新建项目，使用自己的appid，把原有项目中代码copy到新项目即可
 * projectname 配置项目名称
 * "urlCheck": 是否检查安全域名和TLS版本,
		"es6": 是否启用es5转es6,
		"postcss": 上传代码时样式是否自动补全,
		"minified": 上传代码时是否自动压缩,
 */

/** 授权
 * wx.getSetting 用户授权信息
 * wx.authorize 授权
 * wx.openSetting 打开设置页面(点击打开。现在也可使用button组件的open-type获取用户信息)
 */

//app.js
// app.js是小程序的入口文件
// App函数用于初始化应用程序对象，创建出一个全局为一个的应用程序对象app
App({
  onLaunch: function() {
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息，wx.getSetting 用户授权信息
    // wx.getSetting({
    //   success: res => {
    //     if (res.authSetting['scope.userInfo']) {
    //       // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
    //       wx.getUserInfo({
    //         success: res => {
    //           // 可以将 res 发送给后台解码出 unionId
    //           this.globalData.userInfo = res.userInfo

    //           // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
    //           // 所以此处加入 callback 以防止这种情况
    //           if (this.userInfoReadyCallback) {
    //             this.userInfoReadyCallback(res)
    //           }
    //         }
    //       })
    //     }
    //   }
    // })
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate(function(res) {
        console.log('onCheckForUpdate====', res)
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          console.log('res.hasUpdate====')
          updateManager.onUpdateReady(function() {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: function(res) {
                console.log('success====', res)
                // res: {errMsg: "showModal: ok", cancel: false, confirm: true}
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                }
              }
            })
          })
          updateManager.onUpdateFailed(function() {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~'
            })
          })
        }
      })
    }
  },
  // 由于应用程序对象是唯一的，所以可以把一些全局数据放在这里
  globalData: {
    userInfo: null
  }
})

/** 小程序UI组件
 * iview
 * minui
 * colorui
 * weui
 * wux
 */

/** 小程序框架
 * mpvue
 * wepy
 */